package com.itheima.jdbc;

/*
 *  JDBC 快速入门
 * */

import com.itheima.jdbc.pojo.Account;
import org.junit.Test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

public class JDBCDemo5_ResultSetDemo {
    /*
        查询account账户表数据，封装为Account对象中，并且存储到ArrayList集合中
        1.定义一个Account实体类
        2.查询数据，封装到Account中
        3.将Account对象存入Account List中

     * 执行DQL语句
     * */

    @Test
    public void testResultSet() throws Exception {

        // 注册驱动  新版可以去掉
//        Class.forName("com.mysql.jdbc.Driver");

        // 2.获取链接
        String url ="jdbc:mysql://localhost:3306/db1?useSSL=false&serverTimezone=UTC";
        String username ="root";
        String password ="dzl123";
        Connection conn = DriverManager.getConnection(url,username,password);

        // 3.定义sql
        String sql = "select * from account";

        //4.获取statement对象
        Statement stmt = conn.createStatement();

        //5.执行sql
        ResultSet rs = stmt.executeQuery(sql);


        // 创建集合
        List<Account> list=new ArrayList<>();

        // 6.处理结果,遍历rs中的所有数据
        //6.1光标向下移动一行，并判断该行是否有数据
        while (rs.next()){
            Account account =new Account();


            //6.2获取数据 getXxx（）
            int id = rs.getInt("id");
            String name = rs.getString("name");
            double money = rs.getDouble("money");

            //赋值
            account.setId(id);
            account.setName(name);
            account.setMoney(money);

            list.add(account);
        }
        System.out.println(list);

        //7.释放资源
        rs.close();
        stmt.close();
        conn.close();

    }


}
